#pragma once

#include "MAISObj.h"

#include <iostream>
#include <vector>

#include <AIS_InteractiveObject.hxx>
#include <AIS_Shape.hxx>

#include <Interface_Static.hxx>
#include <IFSelect_ReturnStatus.hxx>
#include <STEPControl_Writer.hxx>
#include <STEPControl_Reader.hxx>
#include <STEPControl_StepModelType.hxx>
#include <IGESControl_Writer.hxx>
#include <IGESControl_Controller.hxx>
#include <IGESControl_Reader.hxx>
#include <RWObj_TriangulationReader.hxx>

#include <QString>

class DataExchange
{
public:
	DataExchange() = default;

	void setAisObjs(std::vector<Handle(AIS_InteractiveObject)>& objs)
	{
		aisObjs = objs;
	}

	std::vector<Handle(AIS_InteractiveObject)> getAisObjs()
	{
		return aisObjs;
	}

	void ExportStep(const QString& fileName , STEPControl_StepModelType stepType = STEPControl_AsIs);
	void ImportStep(const QString& fileName);

	void ExportIges(const QString& fileName);
	void ImportIges(const QString& fileName);

	void ImportObj(const QString& fileName);

private:
	std::vector<Handle(AIS_InteractiveObject)> aisObjs;
};